#pragma once

#include "HashTable.h"

namespace my_space
{
	template<class K, class V>
	class unordered_map
	{
	public:
		template <class K, class V>
		struct mapKeyOfT
		{
			const K& operator()(const std::pair<K, V>& kv)
			{
				return kv.first;
			}
		};

	public:
		bool insert(const std::pair<K, V>& kv)
		{
			return _ht.Insert(kv);
		}

	private:
		hashbucket::HashTable<K, std::pair<const K, V>, mapKeyOfT<K, V>> _ht;
	};

	void test_unordered_map1()
	{
		unordered_map<int, int> m1;

		m1.insert(std::make_pair(1, 1));
		m1.insert(std::make_pair(2, 2));
		m1.insert(std::make_pair(3, 3));
	}

}